Low Latency Live
(MI.TrafficType)
Overview
The Low Latency Live feature is available for sites configured for the live traffic type.
The Low Latency Live feature is designed to optimize live streams for low-latency delivery, but only works if your entire workflow supports the LL-DASH or LL-HLS streaming protocols. For best results, ensure that both your origin and player are fully configured for one or both of these protocols. Enabling the rule without full end-to-end support for LL-DASH and/or LL-HLS may degrade performance rather than improve it.
Configure the Feature
To enable the Low Latency Live feature, first make sure the site is configured for the live traffic type at the site level. Although traffic type is a site-level setting, you can extend it's behavior for a specific host or path to support low-latency delivery.
To do so:
-
Confirm that the site is configured for the live traffic type.
-
Copy the
MI.TrafficType
SVTA component from the site level to the specific host or path where you want to enable low latency behavior. -
In the copied component, add a
hints
array that includes eitherll-dash
orll-hls
value, depending on your streaming format.
The hints array signals to the CDN that the traffic is streaming video using the Low-Latency DASH or Low-Latency HLS protocol, allowing the CDN to apply protocol-specific optimizations at the specified host or path.
This example triggers optimized processing for Low-Latency DASH:
{
"generic-metadata-type": "MI.TrafficType",
"generic-metadata-value": {
"traffic-type": "live",
"hints": [
"ll-dash"
]
}
}
Supported Properties
Field | Valid Values | Description |
---|---|---|
traffic-type | live | Low Latency Live is available for sites configured for the live traffic type. |
hints | ll-dash, ll-hls | Specifies if traffic is using the Low-Latency Dash or HLS protocol. |
Low Latency HLS
For Low Latency HLS, there are additional implementation steps:
-
Configure a Cache Key Management Rule to include the following query parameters in the cache key:
_HLS_msn
_HLS_part
_HLS_skip
This is essential for ensuring accurate content delivery in Low Latency HLS streaming.
-
If you are using the LL-HLS protocol's EXT-X-PRELOAD-HINT functionality, consider adjusting the Read Timeout setting in the Origin Configuration.
A client using
EXT-X-PRELOAD-HINT
can anticipate upcoming segments and request them before they are available from the origin. To prevent timeouts when the client requests a segment before it is ready, set the origin read timeout to 1.5 to 2.5 times the segment duration.For example, if segments are 2-4 seconds long, a suitable Read Timeout value is 6 seconds. The following origin configuration defines a 6 second read timeout:
{
"generic-metadata-type": "MI.SourceMetadataExtended",
"generic-metadata-value": {
"sources": [
{
"protocol": "https/1.1",
"endpoints": [
"www.example.com"
],
"connection-control": {
"byte-read-timeout-ms": 6000,
"connection-setup-timeout-ms": 3000,
"max-connection-retries-per-source": 3
}
}
]
}
}
Examples
This example triggers optimized processing for Low-Latency DASH:
{
"generic-metadata-type": "MI.TrafficType",
"generic-metadata-value": {
"traffic-type": "live",
"hints": [
"ll-dash"
]
}
}
This example triggers optimized processing for Low-Latency HLS, along with the MI.Cache
component, as an example of how to set up a Cache Key Management rule to include the required query parameters:
[
{
"generic-metadata-type": "MI.TrafficType",
"generic-metadata-value": {
"traffic-type": "live",
"hints": [
"ll-hls"
]
}
},
{
"generic-metadata-type": "MI.Cache",
"generic-metadata-value": {
"exclude-path-pattern": "",
"include-query-strings": [
"_HLS_msn",
"_HLS_skip",
"_HLS_part"
]
}
}
]
This is an example of the MI.TrafficType
component, along with the MI.ComputedCacheKey
component, as an example of how to set up an advanced Cache Key Management rule to include the required query parameters:
[
{
"generic-metadata-type": "MI.TrafficType",
"generic-metadata-value": {
"traffic-type": "live",
"hints": [
"ll-hls"
]
}
},
{
"generic-metadata-type": "MI.ComputedCacheKey",
"generic-metadata-value": {
"expression": "req.uri.path . '&' . '?' . req.uri.querykv._HLS_msn . '&' . req.uri.querykv._HLS_skip . '&' . req.uri.querykv._HLS_part"
}
}
]